home *** CD-ROM | disk | FTP | other *** search
/ Large Pack of OldSkool DOS MOD Trackers / buzzmachines_massive.exe / Dev / Geoffroy Notefilter SourceCode / NoteFilterTrack.h < prev   
Encoding:
C/C++ Source or Header  |  2002-05-25  |  1.9 KB  |  67 lines

  1. // NoteFilterTrack.h: interface for the NoteFilterTrack class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4.  
  5. #if !defined(AFX_NOTEFILTERTRACK_H__883FC995_5615_48EA_BBCE_1FD052522E0F__INCLUDED_)
  6. #define AFX_NOTEFILTERTRACK_H__883FC995_5615_48EA_BBCE_1FD052522E0F__INCLUDED_
  7.  
  8. #if _MSC_VER > 1000
  9. #pragma once
  10. #endif // _MSC_VER > 1000
  11.  
  12. #include <stdlib.h>
  13. #include <time.h>
  14. #include <math.h>
  15. #include <string.h>
  16. #include <windows.h>
  17. #include "../mdk.h"
  18.  
  19. #include "ADSREnveloppe.h"
  20. #include "CookbookFilter.h"
  21. #include "BuzzParameterQ.h"
  22. #include "BuzzParameterVolume.h"
  23. #include "BuzzParameterDuration.h"
  24.  
  25. #define NoteFilterTrack_NB_HARMONICS 10
  26.  
  27. class NoteFilterTrack  
  28. {
  29. public:
  30.     NoteFilterTrack();
  31.     virtual ~NoteFilterTrack();
  32.  
  33.     void setSampleRate(int sampleRate);
  34.     void setNote(byte note);
  35.     void setQ(BuzzParameterQ * q);
  36.     void setHarmoVolumes(BuzzParameterVolume * harmoVolumes);
  37.     void setFilterType(byte type);
  38.     void setADSR(BuzzParameterDuration * a, BuzzParameterDuration * d, BuzzParameterDuration * s, BuzzParameterDuration * r);
  39.     void activateADSR(bool activate);
  40.     void setVolume(BuzzParameterVolume * trackVolume);
  41.  
  42.     bool MDKWorkStereo(float *psamples, int numsamples, int const mode);
  43.  
  44. protected:
  45.     bool adsrActivated;
  46.     float buzzNote2Freq(byte note);
  47.  
  48.     BuzzParameterQ * q;
  49.     BuzzParameterDuration *a, *d, *s, *r;
  50.     ADSREnveloppe adsrEnveloppe;
  51.     BuzzParameterVolume * volume;
  52.  
  53.     CookbookFilter bandPassFilter[NoteFilterTrack_NB_HARMONICS];
  54.     BuzzParameterVolume * harmoVolumes;
  55.  
  56.     float oldValueForQ;
  57.     float oldValueForHarmoVolumes[NoteFilterTrack_NB_HARMONICS];
  58.     unsigned long oldValueForA,oldValueForD,oldValueForS,oldValueForR;
  59.  
  60.     float * trackBufferTemp;
  61.     int trackBufferTempSize;
  62.     float * mixBufferTemp;
  63.     int mixBufferTempSize;
  64. };
  65.  
  66. #endif // !defined(AFX_NOTEFILTERTRACK_H__883FC995_5615_48EA_BBCE_1FD052522E0F__INCLUDED_)
  67.